﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SharepointSolutionInstaller.Views;
using SharepointSolutionInstaller.Utils.Log;

namespace SharepointSolutionInstaller.Utils.SolutionDeployment
{

    public abstract class Command
    {
        protected static readonly Logger log = Logger.messageCollector();
        private readonly InstallerControl parent;

        public Command(InstallerControl parent)
        {
            this.parent = parent;
        }

        internal InstallerControl Parent
        {
            get { return parent; }
        }

        internal abstract string Description { get; }

        protected internal virtual bool Execute() { return true; }

        protected internal virtual bool Rollback() { return true; }
    }
}
